package cn.org.timespace.easyframe.dao.permission;

import java.util.List;

import cn.org.timespace.easyframe.action.permission.EfDictionaryModel;
import cn.org.timespace.easyframe.model.permission.EfDictionary;
import cn.org.timespace.easyframe.model.permission.EfDictionaryId;


/**
 * A data access object (DAO) providing persistence and search support for
 * EfDictionary entities. Transaction control of the save(), update() and
 * delete() operations can directly support Spring container-managed
 * transactions or they can be augmented to handle user-managed Spring
 * transactions. Each of these methods provides additional information for how
 * to configure it for the desired type of transaction control.
 * 
 * @see cn.org.timespace.hms.model.repast.EfDictionary
 * @author MyEclipse Persistence Tools
 */

public interface EfDictionaryDAO  {
	
	/** 
	 * 根据groupName查询
	 * @param groupName
	 * @return
	 */
	public List<EfDictionary> findByGroupName(String groupName);

	public void save(EfDictionary transientInstance) ;

	public void delete(EfDictionary persistentInstance) ;
	
	public void update(EfDictionary instance);

	public EfDictionary findById(EfDictionaryId id);
	
	public List<EfDictionary> findByCondition(EfDictionaryModel model);

	public List findByExample(EfDictionary instance) ;

	public List findByProperty(String propertyName, Object value);

	public List findByType(Object type) ;

	public List findByItemname(Object itemname) ;

	public List findByFilter(Object filter) ;

	public List findByExesql(Object exesql) ;

	public List findByRemark(Object remark) ;

	public List findAll() ;

	public EfDictionary merge(EfDictionary detachedInstance) ;

	public void attachDirty(EfDictionary instance) ;

	public void attachClean(EfDictionary instance) ;

	
	public void saveWithAutoGeneratorItemValue(EfDictionary efDictionary, String groupName);
	
	/**
	 *  可供转入的餐台
	 * @return
	 */
	public List<EfDictionary> getCateringForChange();
}